The invention relates generally to the field of image processing, and in particular to embedding and extracting hidden messages in digital image data. This field is also referred to as data hiding, information hiding, watermarking and also steganography.
U.S. Pat. No. 5,850,481, issued Dec. 15, 1998 to Rhoads, entitled xe2x80x9cSteganographic Systemxe2x80x9d discloses a method of embedding hidden messages in source data that can be described by the equation:                                                         I              xe2x80x2                        ⁢                          xe2x80x83                        ⁢                          (                              x                ,                y                            )                                =                                    I              ⁢                              xe2x80x83                            ⁢                              (                                  x                  ,                  y                                )                                      +                                          ∑                                  i                  =                  1                                n                            ⁢                              xe2x80x83                            ⁢                                                                    b                    i                                    ·                                      R                    i                                                  ⁢                                  xe2x80x83                                ⁢                                  (                                      x                    ,                    y                                    )                                                                    ,                            (        1        )            
where Ixe2x80x2(x,y) is the source data containing the hidden message,
I(x, y) is the source data,
bi is the ith bit of the n-bit hidden message, and
Ri(x, y) are random arrays of numbers having the property that             R      i        ⁢          xe2x80x83        ⁢                  (                  x          ,          y                )            ·              R        j              ⁢          xe2x80x83        ⁢          (              x        ,        y            )        =      {                                        1                                                              where                ⁢                                  xe2x80x83                                ⁢                i                            =              j                                                            0                                                              where                ⁢                                  xe2x80x83                                ⁢                i                            ≠              j                                          ,      
A simplified schematic block diagram illustrating this method is shown in FIG. 2. First an n-bit message is provided (10), then n random independent arrays Ri(x,y) are generated (12). By independent is meant that the arrays are orthogonal in the sense of equation (1). Each of the random independent arrays Ri(x,y) is then multiplied by the value of a corresponding bit in the n-bit message to produce n products(14). The n products are then added to produce a sum (16), and finally the sum is added to the original image data (18) to produce a modified image having an embedded message.
Each individual bit bi of the embedded message is recovered from the modified image data Ixe2x80x2(x,y) by taking the dot product of the modified image data and the corresponding random independent array Ri(x,y). The values of the recovered bits are assigned based on the amplitude of the dot product.
A problem with this method is that a separate random array of numbers Ri(x,y) must be generated for each bit of the hidden message. One method disclosed for generating n random arrays is to scan a pure black image n times on a scanner where the gain has been turned up. For large hidden messages, this process becomes unduly burdensome, and if any systematic disturbances occur in the system, the resulting noise patterns will not be orthogonal. To locate the boundaries of the embedded message, embedded calibration signals are employed. These calibration signals use up bandwidth that could be used for the message.
There is a need therefore for an improved process for generating the random arrays employed in the hidden message embedding process.
The need is met according to the present invention by generating the random number arrays as follows.
Ri(x,y)=C(xxe2x88x92xcex1i,yxe2x88x92xcex2i),
where C(x,y) is a random array of numbers, and (xcex1i,xcex2i) are cyclical shifts having the property that (xcex1i,xcex2i)xe2x89xa0(xcex1j,xcex2j) for ixe2x89xa0j. Statistical theory can be used to show that a cyclically shifted version of a random array is orthogonal to the original random array and to other cyclically shifted versions of the random array.
This approach has the advantage that after generating one random number array C(x,y), the remainder may be easily generated simply by cyclically shifting the array by offsets (xcex1i,xcex2i). It has the additional advantage that it makes the computation simpler at the decoder. Instead of using n (typically 32, 64, . . . , 128 etc.) independent random number arrays, the method can now use one random number array. This complexity reduction is immensely beneficial to system developers attempting to improve algorithm speed. The invention may be applied to embedded systems in cameras, scanners or other systems where memory and processor performance are important.
In a preferred embodiment, the random array C(x,y) possesses a substantially flat Fourier amplitude spectrum and random phase.
In a further preferred embodiment, the cyclical shifts applied to the random array C(x,y) are represented by a shift template having a highly peaked autocorrelation. This embodiment has the additional advantages that the message can be recovered from the image without the need for embedded calibration signals, and the same method can be used to recover messages embedded by the technique disclosed by Rhoads in U.S. Pat. No. 5,850,481, or by the technique disclosed in U.S. patent application Ser. No. 08/848,112, filed Apr. 28, 1997 and allowed Sep. 23, 1999, entitled xe2x80x9cMethod For Generating An Improved Carrier For Use In An Image Data Embedding Application,xe2x80x9d by Honsinger et al. Thus messages embedded using two different proprietary embedding techniques can be recovered with the message extraction method of the present invention. This will be useful for example in image scanners that are likely to encounter embedded messages of different origin.